package container

import (
	"fmt"
)

/**
	数组是值类型，就意味是值拷贝(值传递)
	除非使用指针，就是引用传递
 */

// 打印数组
/**
	arr []int 和 arr [5]int 意义不同，一个代表切片，一个代表数组
    如果规定了函数传入的 数组的长度为5, 也就是 arr [5]int ，那么就只能传入长度为5的数组！
 */
func printArray(arr []int){
	// 打印数组
}


func main() {

	// 声明一个 5个大小的 数组
	var arr1 [5]int

	// 声明一个 3个大小的并且有三个值的 数组
	arr2 := [3]int{1,2,3}

	// 声明一个 让系统自己去数都多少个的 数组
	arr3 := [...]int{1,2,3,4,5,6}

	// 声明一个二维数组， 4行5列, 也就是4个数组，每一个数组都有5个元素
	var grid [4][5]int

	// [0 0 0 0 0] [1 2 3] [1 2 3 4 5 6]
	fmt.Println(arr1, arr2, arr3)

	// [[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]
	fmt.Println(grid)

	// 遍历数组
	// 第一种方式
	for i := 0;i < len(arr3) ; i++  {
		fmt.Print(arr3[i] ," ")
	}

	// 换行
	fmt.Println()

	// 遍历数组
	// 第二种方式
	for i, v := range arr3 {
		fmt.Println("下坐标坐标：", i, "对应的值：", v)
	}

}
